// Copyright 2005-2020 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.

#ifndef MUMBLE_MUMBLE_SERVERRESOLVER_H_
#define MUMBLE_MUMBLE_SERVERRESOLVER_H_

#include <QtCore/QObject>
#include <QtCore/QString>
#include <QtCore/QList>

#include "Net.h" // for HostAddress
#include "ServerResolverRecord.h"

class ServerResolverPrivate;

class ServerResolver : public QObject {
	private:
		Q_OBJECT
		Q_DISABLE_COPY(ServerResolver)
	public:
		ServerResolver(QObject *parent = NULL);

		QString hostname();
		quint16 port();

		void resolve(QString hostname, quint16 port);
		QList<ServerResolverRecord> records();

	signals:
		/// Resolved is fired once the ServerResolver
		/// has resolved the server address.
		void resolved();

	private:
		ServerResolverPrivate *d;
};

#endif
